{{tag>serveur sécurité vétuste}}

----

====== AppArmor : gestion des droits d'accès sur les applications ======


AppArmor ("Application Armor") est un logiciel libre de sécurité pour Linux. AppArmor permet à l'administrateur système d'associer à chaque programme un profil de sécurité qui restreint les capacités de celui-ci.

Il s'agit plus précisément d'un outil qui permet de verrouiller les applications en limitant strictement leur accès aux seules ressources auxquelles elles ont droit sans perturber leur fonctionnement.






===== Installation =====
====Installation lucid et supérieur====

AppArmor est installé par défaut
vous pouvez ajouter de nouveaux profils en[[:tutoriel:comment_installer_un_paquet| installant le paquet]] **[[apt>apparmor-profiles]]**
et vous pouvez également installer une suite d'utilisatires pour controler AppArmor en installant le paquet **[[apt>apparmor-utils]]**



Lancer dans la [[:terminal|console]] :
FIXME ! ATTENTION : la première commande va lancer tout les profils en mode enforce 
<code>
echo " pour mettre tous les profiles en marche "
sudo aa-enforce /etc/apparmor.d/*
echo " pour mettre seulement le profile d'une application en marche"
sudo aa-enforce firefox
</code>
====Installation feisty====
FIXME //date de Feisty, a mettre a jour//

Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt://apparmor-modules-source,dpatch|apparmor-modules-source dpatch]]**  (__paquets indisponible avec natty -11.04__ )

Ensuite, saisir dans la [[:terminal|console]] :

  sudo m-a -v -t prepare           
  sudo m-a -v -t -f build apparmor-modules         
  sudo m-a -v -t -f install apparmor-modules        
Puis 
[[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt://apparmor,apparmor-utils,apparmor-profiles,libterm-readline-gnu-perl|apparmor apparmor-utils apparmor-profiles libterm-readline-gnu-perl]]**
( __ne se trouve plus dans les dépôts avec natty__ ) 
et enfin redémarrer sa machine.



- Pour **Natty**  et supérieur FIXME  installer  **[[apt>user-space parcer utility for apparmor]]** disponible dans l[[depots_natty|es dépôts]] (pour consulter le profil )

Puis dans  [[:terminal|console]] saisir : 

apparmor_parser 

Pour consulter le statut d'apparmor installer via le terminal :

sudo apt-get install apparmor-utils

===== Utilisation =====

Les profils apparmor sont situés dans le répertoire ''/etc/apparmor.d/''. On peut installer quelques profils supplémentaires avec le paquet ''apparmor-profiles''. Quand on modifie des profils, il faut recharger la liste des profils avec la commande :
  sudo invoke-rc.d apparmor reload

Pour connaître l'état actuel de AppArmor, utiliser la commande :
  sudo apparmor_status

<note important>Quand on ajoute un profil à AppArmor, ce dernier n'est appliqué que si le processus auquel s'applique le profil est relancé. ''apparmor_status'' signalera ces derniers en tant que //unconfined//.</note>

Les profils peuvent être en mode //complain// ou en mode //enforced//. On passe d'un mode à l'autre à l'aide des commandes ''aa-complain'' et ''aa-enforce''. En mode //complain//, AppArmor ne bloque pas les accès faits par le processus, même si ceux-ci ne sont pas autorisés par le profil. Il se contente de les signaler dans le fichier ''/var/log/messages''. En mode //enforced//, AppArmor empêche tout accès non permis par le profil du processus.

==== Activer un profil existant ====

  sudo aa-enforce [programme]

''[programme]'' peut être le nom du programme ou le chemin complet vers l'exécutable.

Exemple :
  sudo aa-enforce firefox

==== Activer tous les profils ====

La commande suivante active tous les profils connus.
  sudo aa-enforce /etc/apparmor.d/*

==== Mettre un profil en mode complain ====

La commande ''aa-complain'' s'utilise de la même manière que ''aa-enforce''. Par défaut les profils sont en mode //enforced//.

==== Création de nouveaux profils ====

Il existe deux manières de créer de nouveaux profils. La première s'applique dans le cas d'un processus qui s'exécute simplement, pour une durée limitée. La seconde s'applique aux processus de type //daemon//, ou encore aux processus exécutés périodiquement ou sur une longue période.
=== Première méthode ===

Il suffit de lancer l'application à l'aide de la commande ''aa-genprof''. AppArmor détectera automatiquement les accès faits par l'application, générera le fichier profil approprié et le placera dans le répertoire ''/etc/apparmor.d''.
  sudo aa-genprof /chemin/vers/mon/processus

=== Seconde méthode ===

On crée d'abord un profil temporaire à l'aide de la commande ''aa-autodep''. On laisse tourner le processus à confiner durant le temps nécessaire, puis on corrige le fichier de profil à l'aide des messages laissés dans les fichiers log, grâce à la commande ''aa-logprof''. Au besoin, on continue à laisser tourner le processus et on relance la commande ''aa-logprof'', jusqu'à ce que le fichier de profil soit adéquat. On peut alors placer ce fichier en mode //enforced//.
  sudo aa-autodep /chemin/vers/mon/processus
  ...
  sudo aa-logprof

Pour plus de détails, vous pouvez vous reporter à la documentation sur le site de Novell pour connaître les différentes options proposées par ''aa-logprof''.

==== Notifications de violations ====

FIXME
 Gusty n'inclut pas encore d'outils pour avertir l'utilisateur des violations de profils. Il faut donc examiner manuellement le fichier ''syslog'', ce qui peut être fastidieux. Une solution pourrait être d'installer le paquet **[[apt>logcheck]]** ( [[http://nyquist.life.free.fr/dotclear/index.php?post/2008/10/13/Logcheck|tutoriel-1]], [[https://home.demi-lune.org/brain/?page=display&section=articles&id=129|tutoriel-2]] ) , qui se chargera d'envoyer par courriel diverses informations contenues dans les logs, dont les violations signalées par AppArmor.

===== Exemples de profils =====



===== Voir aussi =====
Ou trouver d'autres profiles :
  * [[https://code.launchpad.net/apparmor-profiles|Sur launchpad]]
  * [[http://bodhizazen.net/Tutorials/aa|Les profiles de bodhy zazen]]
  *  [[http://apparmor.opensuse.org/|AppArmor profile exchange ( apparmor.opensuse.org )]] ( les profiles partagés ou mise à jour par apparmor arrivent ici ) ( voir sudo aa-logprof  [[http://doc.opensuse.org/products/opensuse/openSUSE/opensuse-security/cha.apparmor.repos.html|AppArmor Profile Repositories]] )

  * [[https://wiki.ubuntu.com/AppArmor|Wiki ubuntu Apparmor]]
  * [[https://wiki.ubuntu.com/DebuggingApparmor|Wiki Ubuntu DebuggingApparmor]]
  * [[http://ubuntuforums.org/showthread.php?t=1008906|Introduction to AppArmor ( de bodhi zazen ) sur le forum ubuntu anglais]]
  * [[http://fabianmoser.at/blog/2010/09/24/secure-firefox-with-apparmor/|Ajouter le support des profiles pulseaudio dans les profiles firefox]]
  * [[http://www.mpipks-dresden.mpg.de/~mueller/docs/suse10.1/suselinux-manual_en/manual/bx5bmkm.html|Building Novell AppArmor Profiles with the YaST GUI]] ( une interface un peu plus évolué pour apparmor sur novell )
  * [[selinux]]
  * [[sécurité]]
  * [[http://www.novell.com/linux/security/apparmor/|Apparmor par Novell]], plus spécifiquement la [[http://www.novell.com/documentation/apparmor/book_apparmor21_admin/data/book_apparmor_admin.html|documentation]].

----
//Contributeurs principaux: ..//